package com.uinnova.product.eam.service;

import com.binary.framework.web.RemoteResult;
import com.binary.jdbc.Page;
import com.uinnova.product.eam.comm.model.es.WorkbenchChargeDone;
import com.uinnova.product.eam.model.vo.WorkbenchBO;
import com.uinnova.product.eam.model.vo.WorkbenchChargeDoneVO;

import java.util.List;
import java.util.Set;

public interface WorkbenchChargeDoneSvc {
    Boolean saveOrUpdate(List<WorkbenchChargeDone> workbenchChargeDoneList);

    boolean changeAction(String businessId);

    Page<WorkbenchChargeDone> pageQueryList(Integer pageNum, Integer pageSize,Integer action);

    RemoteResult transform(String businessId,String transId,Integer dirType);

    WorkbenchBO getCount();

    boolean updateInfoStatus(Long planId, String diagramId, Integer type);

    void deleteWorkbenchChargeDone(WorkbenchChargeDoneVO workbenchChargeDoneVO);

    void deleteWorkbenchPublishedChargeDone(String businessKey,Integer dirType);

    boolean deleteByCondition(WorkbenchChargeDone workbenchChargeDone);

    Boolean batchModifyWorkbenchTask(String processInstanceId,String businessKey, String curTaskId);

    Boolean batchModifyWorkbenchTaskDone(String processInstanceId,String businessKey);

    void addChangeAssigness(String taskId, String orignAssignee, String nowAssignee);

    void rollbackChangeAssigness(String taskId, String orignAssignee, String nowAssignee);

    WorkbenchChargeDone getById(Long id);

    void cirCulate(List<WorkbenchChargeDone> workbenchChargeDoneList);

    void finishCirCulate(Long id);

    void closeChangeAssigness(Set<String> taskList, String userId, String userId1);

    void rollbackChangeAssignessAll(String taskId, Set<String> taskIdList, String orignAssignee, String nowAssignee);

    void closeAndAddCommunicate(Set<String> taskList, String userId, String userId1,Long communicateId);

    void addCommunicate(String taskId, String orignAssignee, String nowAssignee);
}
